package godzilla.ciudad;

public class Mapa {

	private Plano planoPlantaBaja;
	private Plano planoSubsuelo;

	public Mapa(int ancho, int alto) {
		
		
		this.planoPlantaBaja = new Plano(ancho,alto, new NivelPlantaBaja());
		this.planoSubsuelo = new Plano(ancho,alto, new NivelSubsuelo());
		
	}

	public void construir(Estructura estructura, Punto coordenadas) throws UbicacionOcupadaException {
		
		if (planoPlantaBaja.nivelAsociado().nombre() == estructura.nivelAsociado().nombre()) planoPlantaBaja.ubicacionEn(coordenadas).construir(estructura);
		if (planoSubsuelo.nivelAsociado().nombre() == estructura.nivelAsociado().nombre()) planoSubsuelo.ubicacionEn(coordenadas).construir(estructura);
		
		
	}

	public Estructura encontrarEstructuraEn(Punto coordenadas) {
		
		return planoPlantaBaja.ubicacionEn(coordenadas).estructura();
		
	}

	public Estructura encontrarEstructuraSubterraneaEn(Punto coordenadas) {
		return this.planoSubsuelo.ubicacionEn(coordenadas).estructura();
	}

	public void inundarZona(Punto coordenadas) {
		this.planoPlantaBaja.inundar(coordenadas);
		
	}

	public boolean encontrarAguaEn(Punto coordenadas) {
		return planoPlantaBaja.encontrarAguaEn( coordenadas );
	}
	

	
	
	
	

}
